#include "StdAfx.h"
#include "IniFile.h"


CIniFile::CIniFile(void)
{
	ZeroMemory(m_pszFileName,sizeof(m_pszFileName));
}


CIniFile::~CIniFile(void)
{
}

BOOL CIniFile::Open( LPCTSTR pszFileName )
{
	if (NULL == pszFileName)
	{
		return FALSE;
	}
	_tcsncpy(m_pszFileName,pszFileName,MAX_PATH);
	return TRUE;
}

BOOL CIniFile::Close()
{
	return TRUE;
}

BOOL CIniFile::SetValue( LPCTSTR pszSectionName,LPCTSTR pszKeyName,LPCTSTR pszKeyValue )
{
	if (NULL == pszSectionName || NULL == pszKeyName || NULL == pszKeyValue)
	{
		return FALSE;
	}
	if (0 == WritePrivateProfileString(pszSectionName,pszKeyName,pszKeyValue,m_pszFileName))
	{
		return FALSE;
	}
	return TRUE;
}

BOOL CIniFile::SetValue( LPCTSTR pszSectionName,LPCTSTR pszKeyName,DWORD dwKeyValue )
{
	if (NULL == pszSectionName || NULL == pszKeyName)
	{
		return FALSE;
	}
	TCHAR value[16] = {0};
	_itot(dwKeyValue,value,10);
	if (0 == WritePrivateProfileString(pszSectionName,pszKeyName,value,m_pszFileName))
	{
		return FALSE;
	}
	return TRUE;
}

BOOL CIniFile::SetValue( LPCTSTR pszSectionName,LPCTSTR pszKeyName,FLOAT fKeyValue )
{
	if (NULL == pszSectionName || NULL == pszKeyName)
	{
		return FALSE;
	}
	TCHAR value[16] = {0};
	_stprintf(value,_T("%f"),fKeyValue);
	if (0 == WritePrivateProfileString(pszSectionName,pszKeyName,value,m_pszFileName))
	{
		return FALSE;
	}
	return TRUE;
}

BOOL CIniFile::GetValue( LPCTSTR pszSectionName,LPCTSTR pszKeyName,LPTSTR pszKeyValue,LPDWORD pdwBufLen ,LPCTSTR pszDefault /* = _T("")*/)
{
	if (NULL == pszSectionName || NULL == pszKeyName || NULL == pszKeyValue || NULL == pdwBufLen)
	{
		return FALSE;
	}
	GetPrivateProfileString(pszSectionName,pszKeyName,pszDefault,pszKeyValue,*pdwBufLen,m_pszFileName);
	return TRUE;
}

BOOL CIniFile::GetValue( LPCTSTR pszSectionName,LPCTSTR pszKeyName,LPDWORD pdwValue ,DWORD dwDefault /* = 0*/)
{
	if (NULL == pszSectionName || NULL == pszKeyName || NULL == pdwValue)
	{
		return FALSE;
	}
	*pdwValue = GetPrivateProfileInt(pszSectionName,pszKeyName,dwDefault,m_pszFileName);
	return TRUE;
}

BOOL CIniFile::GetValue( LPCTSTR pszSectionName,LPCTSTR pszKeyName,FLOAT * pfValue )
{
	if (NULL == pszSectionName || NULL == pszKeyName || NULL == pfValue)
	{
		return FALSE;
	}
	TCHAR value[16] = {0};
	GetPrivateProfileString(pszSectionName,pszKeyName,_T(""),value,16,m_pszFileName);
	*pfValue =(FLOAT) _tstof(value);
	return TRUE;
}
